/*
功能：生成一条具体的消息由包括以下的元素构成
1 日志的输出时间 2 日志的输出等级 3 源文件名称 4 输出的行号 5 线程ID
6  日志信息的主体 7 日志器名称
*/
#pragma once
#include <iostream>
#include <time.h>

#include <thread>
#include <string>
#include "Level.hpp"
#include "Unit.hpp"

namespace LogMessage
{
    struct LogMeg
    {
        time_t _timestamp;      // 时间戳
        LogLevel::Level _level; // 等级
        size_t _line;           // 行号
        std::thread::id _tid;   // 线程id
        std::string _file;      // 文件名称
        std::string _Log;       // 信息主体
        std::string _Logger;    // 日志器名称

        LogMeg(LogLevel::Level level, size_t line,
               const std::string &file,
               const std::string &Log,
               const std::string &Logger)
            : _timestamp(Unit::Date::GetTimeStampe()), _level(level), _line(line), _tid(std::this_thread::get_id()) // 获取线程id那个线程调用就获取那个线程
              ,
              _file(file), _Log(Log), _Logger(Logger)
        {
        }
    };
}
// std::this_thread::get_id()